package cyce.server;

import cyce.file.Directory;
import java.rmi.Remote;
import java.rmi.RemoteException;


/**
 * This interface is provided between servers for synchronization
 * @author CYCE
 *
 */
public interface IServer extends Remote 
{		
	/**
	 * This method notifies the other server that a change has occured
	 * and that it should update its state to reflect the changes
	 * 
	 */
	public void notifyChange(Directory updateInfo) throws RemoteException;

	/**
	 * Servers use this function to ask each other if they are alive
	 */
	public boolean areYouAlive() throws RemoteException;

	/**
	 * Ask for the root from our peer
	 */
	public Directory getState() throws RemoteException;
}
